roles.tsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { useParams } from 'common'
  2. import { PageContainer } from 'ui-patterns/PageContainer'
  3. import {
  4. PageHeader,
  5. PageHeaderDescription,
  6. PageHeaderMeta,
  7. PageHeaderSummary,
  8. PageHeaderTitle,
  9. } from 'ui-patterns/PageHeader'
  10. import { PageSection, PageSectionContent } from 'ui-patterns/PageSection'
  11. import { RolesList } from '@/components/interfaces/Database/Roles/RolesList'
  12. import DatabaseLayout from '@/components/layouts/DatabaseLayout/DatabaseLayout'
  13. import DefaultLayout from '@/components/layouts/DefaultLayout'
  14. import { UnknownInterface } from '@/components/ui/UnknownInterface'
  15. import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled'
  16. import type { NextPageWithLayout } from '@/types'
  17. const DatabaseRoles: NextPageWithLayout = () => {
  18. const { ref } = useParams()
  19. const showRoles = useIsFeatureEnabled('database:roles')
  20. if (!showRoles) {
  21. return <UnknownInterface urlBack={`/project/${ref}/database/schemas`} />
  22. }
  23. return (
  24. <>
  25. <PageHeader size="large">
  26. <PageHeaderMeta>
  27. <PageHeaderSummary>
  28. <PageHeaderTitle>Database Roles</PageHeaderTitle>
  29. <PageHeaderDescription>
  30. Manage access control to your database through users, groups, and permissions
  31. </PageHeaderDescription>
  32. </PageHeaderSummary>
  33. </PageHeaderMeta>
  34. </PageHeader>
  35. <PageContainer size="large">
  36. <PageSection>
  37. <PageSectionContent>
  38. <RolesList />
  39. </PageSectionContent>
  40. </PageSection>
  41. </PageContainer>
  42. </>
  43. )
  44. }
  45. DatabaseRoles.getLayout = (page) => (
  46. <DefaultLayout>
  47. <DatabaseLayout title="Roles">{page}</DatabaseLayout>
  48. </DefaultLayout>
  49. )
  50. export default DatabaseRoles